Storage virtualization in a storage area network

ABSTRACT

A distributed architecture for the virtualization of storage capacity in a Storage Area Network (SAN) and for the management of virtual and physical memory is described. There is provided a virtualization software computer program consisting of two portions, namely virtualization and translation, each portion residing in a different location but both portions operating interactively. A SAN coupling an array of hosts ( 1 ) via a Network Switch ( 2 ) to an array of storage devices ( 4 ) is equipped with a Storage Virtualization Manager ( 3 ). The SVM operating the virtualization computer software handles physical storage capacity virtualization and metadata management. The Network Switch routes storage I/O operations between the hosts and the storage devices, while the translation software resides in a processor, in either a host or elsewhere on the Network Switch SAN. Although the Network Switch and the SVM decouple tasks to relieve load and prevent bottlenecks, practical implementation permits to design the Network Switch, the processor(s) operating the virtualization program, and the SVM in many configurations spanning from distributed to integrated packaging. The virtualization software also supports real time configuration adaptation of changes occurring in the configuration of the array of hosts and of storage devices of the SAN.

TECHNICAL FIELD

[0001] The present invention relates to the field of Fibre Channel basedStorage Area Networks (SAN) in general and more particularly, to storagevirtualization and to storage management in a Storage Area Network.

[0002] Definitions:

[0003] A Host is a computer or a server.

[0004] A Storage Area Networks (SAN) consists of an array of hostcomputers and an array of storage devices coupled to a network by aNetwork Switch.

[0005] A Virtual Volume is, or Virtual Volumes are, a list of physicalstorage areas or Stripe Areas concatenated and presented to a hostcomputer as a single Virtual storage device.

[0006] A Stripe Set is a group of physical storage devices treated asone large physical storage device. The capacity of the Stripe Set isdefined as the capacity of the smallest physical device multiplied bythe number of the devices in the Stripe Set.

[0007] Metadata is the data pertaining to the mapping of the VirtualVolumes.

[0008] A Fabric is a Fibre Channel Network, or FC Network.

[0009] A Storage Pool comprises at least one or more concatenatedstorage devices.

[0010] A Physical Device is a Logical Unit (LU) of a Storage System.Logical units are identified by the 8 bytes of their World Wide Name(WWN) and by 8 bytes of the LU.

BACKGROUND ART

[0011] The present invention relates to the management of physical datastorage resources in Storage Area Networks (SAN) consisting of an arrayof host computers and an array of storage devices coupled in a storagenetwork by a Network Switch. All I/O operations of each host out of thearray of hosts of the SAN are processed centrally by the Network Switchfor routing to the array of storage devices. In addition, since theNetwork Switch also centrally manages memory storage allocation, runningboth tasks of routing I/O operations and managing storage allocationoften create bottlenecks preventing timely operation of the SAN.

[0012] Storage systems may be related to as pertaining to distinctgenerations. A first generation of storage system dealt with a singlehost having a file system that communicated directly with a singlestorage device. For example, U.S. Pat. No. 5,983,316 disclosed byNorwood, divulges a first generation implementation of virtualizationfor a single host and a plurality of storage devices. U.S. Pat. No.5,404,478 divulged by Arai et al., also describes virtualization and itsimplementation for a multiplicity of host and storage device pairs, thusagain for a one to one relation of the first generation of storagevirtualization. The second generation of storage systems consisted of ahost with a single operating system able to handle RAIDs (RedundantArray of Independent Disks), which may include multiple and variousphysical devices such as Disks, JBODs (Just a Bunch of Disks), Tapes andso on.

[0013] In the third novel generation of storage systems, disclosedbelow, an abstraction of the RAID is introduced, for an array of hostswith an operation system to communicate with Virtual Volumes. TheVirtual Volumes are presented to the hosts as a logical representationof the storage devices, instead of setting the hosts in directcommunication with the physical storage. This third generation ofstorage system belongs to the present invention, as described below.

SUMMARY OF THE INVENTION

[0014] It is an object of the present invention to provide a method forstorage virtualization in a Storage Area Network (SAN). The SANcomprising an array of hosts (1) is coupled to an array of storagedevices (4) via a Network Switch (2) operative for routing storage I/Ooperations between the array of hosts and the array of storage devices,the storage devices having a storage capacity. The array of hosts, thearray of storage devices, and the Network Switch are coupled together ina storage network (5′), and the array of hosts are coupled to aplurality of user workstations (7) on a user network (6′). The method ischaracterized by comprising the steps of coupling a StorageVirtualization Manager (SVM) (3) by a storage network link (5) to theNetwork Switch on the storage network, and coupling the SVM by a usernetwork link (6) to the user network, the SVM being configured forvirtualization of the storage capacity and for managing metadata. Themethod is operating the SVM for virtualization of the storage capacityand for managing metadata, whereby virtualization of the storagecapacity and managing metadata are decoupled from routing storage I/Ooperations.

[0015] It is a further object of the present invention to provide amethod for operating a virtualization computer program comprising afirst configuration portion operating in the SVM (3) and a secondtranslation portion (60) operating in association with at least one hostof the array of hosts. The second translation portion of thevirtualization computer program is operable in each host of the array ofhosts. The method also permits operating the first configuration portionand the second translation portion of the virtualization computerprogram in interactive operative association and operating thevirtualization computer program for supporting real time configurationadaptation of the SAN in response to a configuration change occurring inthe array of hosts. The same holds for a configuration change occurringin the array of storage devices.

[0016] It is another object of the present invention to provide a methodfor operating computer program control functions comprised in thevirtualization computer program for management of storage virtualizationand for configuration management of both the array of hosts and thearray of storage devices. The method enables a System Administrator tomanage the computer program control functions by operating a workstationcoupled to the user network, or managing the computer program controlfunctions in operative association with at least one user or one storageapplication computer program.

[0017] It is an additional object of the present invention to provide amethod for configuring both the Network Switch and the SVM forincorporation into a joint housing. Accommodating one chosen host of thearray of hosts for incorporation therein of the SVM, with the SVM beingconfigured for operative association with the array of hosts and forcoupling thereto via the user network, is also possible. Similarly,configuring a host coupled to the user network to operate theconfiguration computer program in operative association with the NetworkSwitch and with the translation portion of the virtualization computerprogram operating on at least one processor coupled to the storagenetwork is also practical.

[0018] It is a supplementary object of the present invention to providea method for storage virtualization in a Storage Area Network (SAN)comprising an array of hosts (1) coupled to an array of storage devices(4) having a storage capacity. An object of the present invention alsocomprises an Enhanced Network Switch (2E) operative for routing storageI/O operations between the array of hosts and the array of storagedevices. It is included that the array of hosts, the array of storagedevices and the Enhanced Network Switch are being coupled together in astorage network (5′), and the array of hosts are being coupled to aplurality of user workstations (7) in a user network (6′). The method ischaracterized by comprising the steps of forming an Upgraded NetworkSwitch (UNS) (2*) to upgrade the Enhanced Network Switch (2E). The UNSis integrating an adjusted Storage Virtualization Manager (SVM) (3/500)configured for and operative for virtualization of the storage capacityand for managing metadata, the (UTNS) comprising a first EnhancedNetwork Switch portion and a second adjusted SVM portion. The methodfurther comprises coupling the second adjusted SVM portion by a storagenetwork link (5) to the first Enhanced Network Switch portion and by auser network link (6) to the user network. This is followed by operatingthe second adjusted SVM portion for virtualization of the storagecapacity and for managing metadata, whereby virtualization of thestorage capacity and managing of metadata are decoupled from routingstorage I/O operations.

[0019] It is yet an object of the present invention to provide a methodfor coupling a plurality of ports of the Enhanced Network Switchcomprising coupling a first portion of ports (1*) to the hosts (1) and asecond portion of ports (4*) to the storage devices (4), and coupling bystorage network link (5) to each port of the first portion of ports andto each port of the second portion of ports, respectively, at least onehost and at least one storage device, and coupling a processing instance(66) to each port of at least the first portion of ports, and to thesecond adjusted SVM portion.

[0020] It is still an object of the present invention to provide amethod for operating a virtualization computer program comprising afirst configuration portion operative on the second adjusted SVM portionand a second translation portion operative on the processing instancecoupled to each port of the first portion of ports. Evidently, themethod also operating independently the second translation portion ofthe virtualization computer program on the processing instance coupledto each port of the first portion of ports. Clearly, the methodfurthermore running the first configuration portion and the secondtranslation portion of the virtualization computer program ininteractive operative association.

[0021] It is moreover an object of the present invention to provide amethod for operating the virtualization computer program to support realtime configuration adaptation of the SAN in response to a configurationchange occurring in the array of hosts and in the array of storagedevices. Included is also a method for operating computer programcontrol functions comprised in the virtualization computer program formanagement of storage virtualization and for configuration management ofboth the array of hosts and the array of storage devices. In addition,provision is made for enabling a System Administrator to manage thecomputer program control functions by operating a workstation coupled tothe user network, and for managing the computer program controlfunctions in operative association with at least one user applicationcomputer program or at least one storage application program. Comprisedis the ability to configure both the first Enhanced Network Switchportion and the second adjusted SVM portion for incorporation into ajoint housing.

[0022] It is nevertheless an object of the present invention to providea method for storage virtualization in at least one Storage Area Network(SAN) comprising an array of hosts (1) coupled to an array of storagedevices (4) having a storage capacity. The SAN also comprises anEnhanced Network Switch (2E) operative for routing storage I/Ooperations between the array of hosts and the array of storage devicesthe array of hosts. It is understood that the array of storage devicesand the Enhanced Network Switch are being coupled together in a storagenetwork (5′), and the array of hosts are being coupled to a plurality ofuser workstations (7) linked to a user network (6′) further linked to aremote host (1R) via an Internet (80). The method is being characterizedby comprising the steps of coupling an adapted SVM (3/600) in operativeassociation with the remote host, the adapted SVM being configured forvirtualization of the storage capacity and for managing metadata of theat least one SAN via the Internet and the user network. In continuation,coupling the Enhanced Network Switch to the user network, and operatingthe adapted SVM for virtualization of the storage capacity and formanaging metadata of the at least one SAN via the Internet and the usernetwork, whereby virtualization of the storage capacity and managing ofmetadata are decoupled from routing storage I/O operations.

[0023] It is yet a further object of the present invention to provide amethod wherein the Enhanced Network Switch (2E) comprises a plurality ofports comprising a first portion of ports (1*) for coupling to the hosts(1) and a second portion of ports (4*) for coupling to the storagedevices (4). Then comes coupling by storage network link (5) to eachport of the first portion of ports and to each port of the secondportion of ports, respectively, at least one host and at least onestorage device. The method is characterized by further comprising thesteps of coupling a processing instance (66) to each port of at leastthe first portion of ports, and linking each processing instance to theadapted SVM (3/600) via the user network 6′.

[0024] It is still a further object of the present invention to providea method for operating a virtualization computer program comprising afirst configuration portion operated by the adapted SVM and a secondtranslation portion operated by the processing instance coupled to eachport of the first portion of ports. Evidently, the method is also foroperating the first configuration portion and the second translationportion of the virtualization computer program in interactive operativeassociation.

[0025] It is moreover a further object of the present invention toprovide a method for operating the first portion of the virtualizationcomputer program to support real time configuration adaptation of the atleast one SAN, in response to a configuration change occurring in thearray of hosts and/or in the array of storage devices.

[0026] It is likewise a further object of the present invention toprovide for a method for operating computer program control functionscomprised in the virtualization computer program for management ofstorage virtualization and for configuration management of both thearray of hosts and the array of storage devices of the at least one SAN.Possible is also enabling a System Administrator to manage the computerprogram control functions by operating a workstation coupled to the usernetwork. Moreover, the method allows for managing the computer programcontrol functions in operative association with at least one user and/orstorage application computer program operating on a host of the array ofhosts of the at least one SAN.

[0027] It is nevertheless a further object of the present invention toprovide for a system and for a storage virtualizer for storagevirtualization in a Storage Area Network (SAN) comprising an array ofhosts (1), an array of storage devices (4) with a storage capacity. TheNetwork Switch (2) is operative for routing storage I/O operationsbetween the array of hosts and the array of storage devices. The arrayof hosts is being coupled to the array of storage devices via theNetwork Switch in a storage network (5′), and the array of hosts isbeing coupled to a user network (6), comprising a plurality of userworkstations (7). The system and the a storage virtualizer arecharacterized by comprising a Storage Virtualization Manager (SVM) (3)coupled by a storage network link (5) to the Network Switch on thestorage network. The SVM is coupled by a user network link (6) to theuser network, and the SVM is configured for and operating forvirtualization of the storage capacity and for managing metadata,whereby virtualization of the storage capacity and managing metadata aredecoupled from routing storage I/O operations.

[0028] It is another object of the present invention to provide for asystem and for a storage virtualizer for a virtualization computerprogram comprising a first configuration portion running on the SVM anda second translation portion operating in association with at least onehost of the array of hosts. Each host of the array of hosts is operatingthe second translation portion of the virtualization software computerprogram, and/or there is a processor associated with at least one hostof the array of hosts for operating the second translation portion ofthe virtualization computer program.

[0029] It is yet another object of the present invention to provide fora system and for a storage virtualizer for the first configurationportion and the second translation portion of the virtualizationcomputer program being coupled in interactive operative association. Inthe same manner, there is provided a real time configuration adaptationof the SAN in response to a configuration change occurring in the arrayof hosts and/or in the array of storage devices, the real timeconfiguration adaptation being supported by operation of thevirtualization computer program.

[0030] It is still another object of the present invention to providefor a system and for a storage virtualizer for computer program controlfunctions comprised in the virtualization computer program beingoperated for management of storage virtualization and for configurationmanagement of both the array of hosts and the array of storage devices.As such, there is a System Administrator for managing the computerprogram control functions by operating a workstation coupled to the usernetwork, and at least one user and/or storage application computerprogram for managing the computer program control functions.

[0031] It is still another object of the present invention to providefor a system and for a storage virtualizer for a Storage Area Network(SAN) comprising an array of hosts (1), an array of storage devices (4)having a storage capacity. There is also comprised an Enhanced NetworkSwitch (2E) operative for routing I/O operations between the array ofhosts and the array of storage devices, the array of hosts being coupledto the array of storage devices via the Enhanced Network Switch. Thearray of storage devices and the Enhanced Network Switch are beingcoupled together in a storage network (5′) and the array of hosts isbeing coupled to a user network (6′) comprising a plurality of userworkstations (7). The system and the storage virtualizer are beingcharacterized by comprising an Upgraded Network Switch (UNS) 2* createdto upgrade the Enhanced Network Switch, the UNS integrating an adjustedStorage Virtualization Manager (SVM) (3/500) configured for andoperative for virtualization of the storage capacity and for managingmetadata. The UNS comprises a first Upgraded Network Switch portion anda second adjusted SVM portion, and a storage network link (5) couplingthe first Enhanced Network Switch portion to the second adjusted SVMportion. There is further a user network link (6) coupling the secondadjusted SVM portion to the user network, whereby virtualization of thestorage capacity and managing metadata are decoupled from routingstorage I/O operations.

[0032] It is moreover another object of the present invention to providefor a system and for a storage virtualizer for a plurality of portscomprising a first portion of ports (1*) for coupling to the hosts (1)and a second portion of ports (4*) for coupling to the storage devices(4). Additionally comprised are coupling by storage link (5) to eachport of the first portion of ports and to each port of the secondportion of ports, respectively, at least one host and at least onestorage device. Further, at least one processing instance (66) is beingcoupled to each port of at least the first portion of ports, and to thesecond adjusted SVM portion.

[0033] It is likewise another object of the present invention to providefor a system and for a storage virtualizer for a virtualization computerprogram comprising a first configuration portion operative on the secondadjusted SVM portion and a second translation portion operative on theat least one processor coupled to each port of the first portion ofports. This further comprises each at least one processor being coupledto each port of the first portion of ports independently operating thesecond translation portion of the virtualization computer program. Incomplement, there is a real time configuration adaptation of the SAN inresponse to a configuration change occurring in the array of hostsand/or the array of the storage devices, the real time configurationadaptation being supported by operation of the virtualization computerprogram.

[0034] It is nevertheless another object of the present invention toprovide for a system and for a storage virtualizer for computer programcontrol functions comprised in the virtualization computer program formanagement of storage virtualization and for configuration management ofboth the array of hosts and the array of storage devices. This includesa System Administrator for managing the computer program controlfunctions by operating a workstation coupled to the user network and atleast one user and/or storage application computer program for managingthe computer program control functions.

[0035] It is an additional object of the present invention to providefor a system and for a storage virtualizer for storage virtualization ofat least one Storage Area Network (SAN) comprising an array of hosts(1), an array of storage devices (4) having a storage capacity, and aEnhanced Network Switch (2E). The Enhanced Network Switch is operativefor routing storage I/O operations between the array of hosts and thearray of storage devices, the array of hosts being coupled to the arrayof storage devices via the Enhanced Network Switch, with the array ofhosts and the array of storage devices and the Enhanced Network Switchbeing coupled together in a storage network (5′), and the array of hostsbeing coupled to a user network (6′) comprising a plurality of userworkstations (7) and further linked to a remote host (IR) via anInternet (80). The system and the storage virtualizer are beingcharacterized by comprising an adapted SVM (3/600) coupled in operativeassociation with the remote host, the adapted SVM being configured forvirtualization of the storage capacity and for managing metadata of theat least one SAN via the Internet and the user network. The adapted SVMis being operated for virtualization of the storage capacity and formanaging metadata of the at least one SAN via the Internet and the usernetwork, and a coupling for linking the Enhanced Network Switch to theuser network, whereby virtualization of the storage capacity andmanaging of metadata are decoupled from routing storage I/O operations.

[0036] It is yet an additional object of the present invention toprovide for a system and for a storage virtualizer wherein the EnhancedNetwork Switch (2E) comprises a plurality of ports having a firstportion of ports (1*) for coupling to the hosts (1) and a second portionof ports (4*) for coupling to the storage devices (4), and coupling bystorage network links (5) to each port of the first portion of ports andto each port of the second portion of ports, respectively, at least onehost of the array of hosts and at least one storage device of the arrayof storage devices. The system and the storage virtualizer are beingcharacterized by further comprising a processing instance (66) coupledto each port of at least the first portion of ports, and each processinginstance being linked to each port out of the first portion of ports viathe user network to the adapted SVM (3/600). For flexibility, there is avirtualization computer program comprising a first configuration portionoperative on the adapted SVM and a second translation portion operativeon the processing instance coupled to each port of the first portion ofports.

[0037] It is still an additional object of the present invention toprovide for a system and for a storage virtualizer for the processinginstance coupled to each port of the first portion of portsindependently operating the second translation portion of thevirtualization computer program. This is accompanied by an interactiveoperative association between the first configuration portion and thesecond translation portion of the virtualization computer program. Forcompleteness, there is a real time adaptation of the at least one SAN inresponse to a configuration change occurring in the array of hostsand/or in the array of storage devices, the real time configurationadaptation being supported by operation of the virtualization computerprogram. It is optional for a System Administrator to manage thecomputer program control functions via a workstation (8) coupled to theuser network, and for the computer program control functions to bemanaged by at least one user and/or storage application computer programoperating on a host of the at least one SAN.

DETAILED DESCRIPTION OF THE DRAWINGS

[0038] In order to better describe the present invention and to show howthe same can be carried out in practice, reference will now be made tothe accompanying drawings, in which:

[0039]FIG. 1 is a block diagram of a first embodiment 100 according tothe present invention,

[0040]FIG. 2 presents the main structural hardware blocks of the StorageVirtualization Manager (SVM) shown FIG. 1,

[0041]FIG. 3 depicts in more detail the components of the Fibre ChannelInterface Board, shown in FIG. 2,

[0042]FIG. 4 illustrates the principal software modules of the SVM 3shown in FIGS. 1, 2 and 3.

[0043]FIG. 5 shows a storage configuration table,

[0044]FIG. 6 is a translation table pertaining to FIG. 5,

[0045]FIG. 7 illustrates an access permission table related to FIG. 5,

[0046]FIG. 8 shows the software module of the translation computerprogram,

[0047]FIG. 9 represents a flow-chart of the SVM Driver software,

[0048]FIG. 10 is a flow-chart explaining the process of creation of anew Virtual Volume,

[0049]FIG. 11 submits a flow-chart exposing the process of expanding aVirtual Volume,

[0050]FIG. 12 exhibits a flow-chart illustrating the process of changingthe permission of a Virtual Volume,

[0051]FIG. 13 explains, in flow-chart form, how device additions to theSAN configuration are tracked,

[0052]FIG. 14 visualizes how device deletions to the SAN configurationare detected,

[0053]FIG. 15 illustrates a second embodiment 200 of the system shown inFIG. 1, FIG. 16 represents a third embodiment 300, in addition to theembodiments of FIGS. 1 and 2,

[0054]FIG. 17 divulges a fourth embodiment 400,

[0055]FIG. 18 is a diagrammatic representation of a preferred embodiment500, FIG. 19 shows a detail of FIG. 18, and

[0056]FIG. 20 depicts a last preferred embodiment 600.

DISCLOSURE OF THE INVENTION

[0057] The present invention, proposes a new distributed architecturefor the virtualization of storage in a Storage Area Network (SAN), andfor the centralized and uniform management of Virtual Volumes ofstorage. The method allows a System Administrator to exercise real timeuniform management of the Virtual Volumes by software control, withoutrequiring expensive hardware or sophisticated software forimplementation. The method is used to create Virtual Volumes of storagerepresenting the available physical storage facilities. One or moreVirtual Volumes of memory are then presented to a host and appear to thehost as being connected to a storage area. A host thus sends a storagerequest (either write or read) to a virtual address in a VirtualVolumes(s). The virtual address is then translated into physical storagelocation(s) where data are saved.

[0058] Accordingly, there is provided a virtualization software computerprogram consisting of two different portions, each portion residing in adifferent location but both portions remaining in communication witheach other.

[0059] In broad terms, the first portion of the virtualization software,called the configuration software, is used to create Virtual Volumes ofstorage and to handle the metadata, i.e., to map and maintainconfiguration tables of both the virtual and the physical storage. Thesecond portion of the virtualization software, referred to as thetranslation software, mainly consists of a translator, for thetranslation of virtual memory addresses into physical memory locations.The virtualization computer program thus virtualizes the storagecapacity and manages related metadata.

[0060] The virtualization software operates on a system involving a SANwith a Network Switch and a Storage Virtualization Manager (SVM). Bydefinition, a SAN includes an array of host computers coupled via aNetwork Switch to an array of storage devices, either by Fibre Channel(FC), or by TCP/IP, or by other links, to one or more storage devices.The SAN is linked to a user network, preferably an Ethernet, such as aLAN, a WAN, or the Internet, to which users are connected. A SystemAdministrator, operating a workstation coupled to the user network, is auser privileged with access to the SVM, to exercises real-timemanagement of the SAN.

[0061] The key architectural concept of the SVM is the separationbetween the virtualization of the storage capacity and the management ofmetadata dealing with configuration mapping, storage, and storagemanagement, which are handled by the SVM, and between the storage I/Ooperations involving the hosts and the storage devices that are routedby the Network Switch. Data storage and data transfer issues are thusdealt with by the Network Switch while memory allocation and systemmanagement issues are taken care of by the SVM.

[0062]FIG. 1 is a block diagram of a system representing one embodiment100 of the present invention. The system includes an array of hostcomputers 1, or servers 1, not necessarily of the same kind, which areconnected to a Network Switch 2. The. Network Switch 2 is linked to aStorage Virtualization Manager 3, or SVM 3 for short.

[0063] The Network Switch 2 is known in the art as a Network Hub formanaging I/O storage and for routing communications between hosts 1 andan array of physical storage devices 4, also called the storagesubsystems 4. The Network Switch 2 for the present disclosure is chosento permit communication, preferably simultaneous parallel communication,instead of sequential communication.

[0064] The physical storage devices 4, possibly different ones, arepreferably Disks Arrays, but other devices such as RAIDs, JBODs andTapes, are practical. The term “disk” may be used interchangeably with“storage device”. The storage devices 4 are coupled to the NetworkSwitch 2, which is connected to the SVM 3. The storage links 5 betweenthe host computers 1, the Network Switch 2, the SVM 3 and the StorageSubsystem 4 form a storage network 5′ implemented either as IP links, orin Fiber Channel (FC) technology, or as a Gigabit Ethernet.

[0065] Each one of the hosts 1, or clients 1, contains at least one HostBus Adaptor (HBA), not shown in FIG. 1 for the sake of simplicity. EachHBA, chosen for compatibility with the type of communication links ofthe storage network, couples between the host 1 and the physical storagedevice.

[0066] The array of host computers 1 and the SVM 3 are connected to auser network, by user network links 6, implemented for example, aseither a Local Area Network (LAN), or a WAN or an Internet. Thetechnologies employed are either IP network links, or Gigabit Ethernet.Users 7 are connected by user network links 6 to the user network 6′ andto the hosts 1.

[0067] The System Administrator 8, as shown in FIG. 1, is also coupledby a user network link 6 to the user network 6′, in the same way as anyother user 7, but he is privileged with access to the SVM 3.

[0068] As explained below, the virtualization software (used, amongothers, to create Virtual Volumes and to map and maintain configurationtables of both the virtual and the physical storage) resides andoperates in the SVM 3. The terms SVM is referred to below as eithersoftware, or as hardware, or as the functions performed by the SVM. Allthe information necessary to handle the Virtual Volumes and the metadatais available to the SVM 3, to enable the creation, expansion, deletion,or movement of the Virtual Volumes. The task of the SVM 3 is to create avirtual storage area in the form of Virtual Volumes and to map theconfiguration relating the virtual memory addresses to the physicallocations in the array of physical storage devices 4. Each host 1 mayderive from the SVM 3 a host-specific table of translation, fortranslation from virtual storage address into physical storage location.Virtual Volumes created by the SVM 3 are thus presented to the hosts 1,whereas the translation from virtual addresses into physical locationsfor data storage is processed by the translation software operating ineach host in the embodiment 100.

[0069] Furthermore, the SVM 3 runs a device-polling mechanism for acontinuous status-update, and availability update of the host computers1 and of the physical storage devices 4 operating on the SAN. The SVM 3maps the presence, availability and permission level granted to eachhost computer into a detailed configuration table of allocations alsoincluding data about the storage capacity available in the physicalstorage devices 4.

[0070] The SVM 3 also receives configuration-polling requests from anSVM Driver, residing in each host 1, but not shown in FIG. 1. The SVMDriver operates a configuration polling mechanism, launched every fewseconds (say 5 to 10 for example), for the detection of changesoccurring in the configuration of the SAN. The detected changes are thenentered in the configuration tables maintained by the SVM 3. Each SVMDriver derives, for the specific host 1 in which it resides and inrelation with the particular Virtual Volume(s) dedicated thereto, ahost-specific table of translations and of permissions.

[0071] Since systems are dynamic, a system reconfiguration occurs uponaddition or deletion of hardware devices, e.g. hosts 1 or storagedevices 4. Such changes result either from modifications entered by theSystem Administrator say for addition of capacity or for maintenancepurposes of the SAN, or from hardware failures. In consequence, theconfiguration of the SAN is prone to alterations caused either by achange in the number of hosts 1, or by an adjustment of the availablestorage devices 4, or by the intervention of the System Administratoraccessing the SVM 3 to command a hardware reconfiguration. Thevirtualization software computer program adapts the SAN in real time inresponse to configuration changes of the devices, namely hosts I andstorage devices 4. This means adaptation of the SAN to the newconfiguration, including the supporting metadata, tables, and otherinformation required for operation.

[0072] When a host 1 initiates an I/O storage command, the addresstranslation is based on the latest update of the translation tablesderived from the SVM 3 by the SVM Driver running in that host.Practically, this simple address translation is an undemanding operationthat does not impose any processing load on the host 1.

[0073] The method described above prevents data transfer bottlenecks inthe virtualization appliance, i.e. the SVM 3, by avoiding the creationthereof. Such data blockages occur on standard equipment when I/Ocommands are handled by a central management device that also operatesstorage management tasks and routing operations from hosts 1 to physicalstorage devices 4. With the proposed method, in contrast with theconventional systems, the obligation to pass the data related to thestorage I/O command through a central storage management iscircumvented.

[0074] The present method allows the growth of the Storage Area Networkwithout performance degradation while still maintaining a uniform wayfor the virtualization of storage and moreover, achieves this aim at afar lower cost

SVM 3 Hardware

[0075] The main structural hardware blocks of the SVM 3 are presented,in FIG. 2 for an FC storage network. The SVM 3 contains a standardIntel-Architecture processor, an intelligent HBA (Host Bus Adaptor)module with dual FC channels, dual for the sake of redundancy. Astandard Pentium-based Single Board Computer 10 (SBC 10) is connected toa Fibre Channel Interface Board 11 (FC-IB 11) through a PCI bus 12. TheSBC 10 runs a Windows NT (Win NT) Operating System featuring a built-inweb-server for communication with the System Administrator in charge ofthe operation of the system. (Windows and Windows NT are RegisteredTrademarks of the Microsoft Corporation). The Win NT OS is necessary topermit the System Administrator to access the FC-IB 11 from hisworkstation 8 linked to the user network, seen in FIG. 1. Therefore, theSBC 10 also features, for example, an Ethernet port, not shown in FIG. 2for the sake of simplicity, used to connect the SVM 3 by an Ethernetlink 6 to the user network. In the present example, an Ethernet usernetwork 6′ couples the array of computers 1 to the array of users 7, byuser network links 6, as seen in FIG. 1. The user workstations 7,including the System Administrator's workstation 8, the host(s) 1 andthe SVM 3 are thus all coupled in a user network 6′ by Ethernet links 6.

[0076]FIG. 3 depicts in more detail an example of the elements of theFibre Channel Interface Board 11, or FC-IB 11, operating under thecontrol of an Ixworks real-time operating system (Ixworks RTOS) andcoupled by a Fiber Channel link 5 to the Network Switch 2 shown in FIG.2. An i960 RN processor 30 running the Ixworks RTOS is coupled by aprimary 64-bit PCI 31 to the SBC 10, and by a secondary 64-bit PCI 32 toa Fibre Channel chip 33. In addition, the i960 RN processor 30 is alsolinked by a SDRAM Interface 34 to a SDRAM DIMM memory 35 and by a FlashBus Interface 36 to a non-volatile Flash memory 37 containing computerprograms for the configuration support and virtualization software ofthe SVM 3. Preferably, a second Flash Bus Interface 36 is available forother purposes, such as redundancy.

[0077] The FC chip 33, implemented as a Qlogic chip, is connected to theNetwork Switch 2 by a Fibre Channel Interface connector, not shown inFIG. 2 for the sake of simplicity. (Qlogic is a Registered Trademark). Asecond Qlogic chip 33 and a second FC Interface connector may be added,for different reasons, even redundancy. Other elements connected to theFC chip 33 include an Optional Serial EEPROM 38 and a SRAM 39.

[0078] The primary PCI bus 31 is used for communication and informationexchange with the NT Operating System running on the SBC 10, shown inFIG. 2. More components are attached to the FC-IB 11 but are notdescribed since they are standard and do not add to the explanations.

The SVM Software

[0079] Referring now to FIG. 4, the principal software modules of theSVM 3 are depicted as an example for a specific FC embodiment. Theprograms referred to as Pentium programs are run by the Win NT on theSingle Board Computer 10 (SBC 10) while those denominated as 960programs are run by the i960 RN processor 30 on the FC-IB 11.

[0080] The Pentium programs include, amongst others, the Windows NToperating system 41 (Windows NT 41), with a standard TCP/IP stack 42, aweb-server 43, and an I2O device driver module 44. The I2O module 44executes the data communication tasks between the Windows NT 41 and theIxworks Real Time Operating System 45 (Ixworks RTOS 45) operated by thei960 RN processor 30 on the FC-IB 11.

[0081] The 960 programs encompass the FC-IB 11, the Ixworks Real TimeOperating System 45 (IX RTOS 45) with an I2O Support module 46 and thefollowing software modules: an FC driver 47, a Disk/HBA driver 48, aSetup module 49, a Storage Manager 50 and an HTML builder 51. The I2Osupport module 46 is in charge of the data communications exchange withthe I2O driver module 44 of the Windows NT 41.

[0082] The FC driver module 47, programmed according to the Qlogicfirmware specifications, handles the FC software interface forcommunication of the SVM 3 with the Network Switch 2. In other words,the FC driver module 47 enables FC communication between the SVM 3 andthe Network Switch 2, and serves for interaction with the hardwaredevices of the SAN, such as the hosts 1 and the storage devices 4.

[0083] The Disk/HBA driver 48 is needed for communication of the SVM 3with the storage devices 4 and with the hosts 1, or more precisely, withthe HBAs of the hosts 1. The Disk/HBA module 48 operates adevice-polling mechanism for detection of the presence, of theavailability, and of the access permission to the various hardwaredevices, host(s) 1 and storage devices 4, of the SAN. The Disk/HBAmodule 48 is thus able to detect the status parameters per VirtualVolume, including the presence and the authorization level of the hosts1 and of the storage devices 4. Status parameters, for a host 1 and forstorage device 4, include Absent, Present, or Failed. The authorizationlevels of the storage devices 4 include Read Only, Read/Write andOff-Line. In addition, since the number of hosts 1 and the number ofstorage devices 4 coupled to the SAN may change due to availability ordecision of the System Administrator, the Disk/HBA module 48 isresponsive to configuration modifications, such as the addition ordeletion of hardware units, as will be explained below.

[0084] The device-polling mechanism operated by the Disk/HBA module 48sends an inquiry command, in this example a SCSI inquiry command, every30 seconds to all the FC devices of the SAN. The information retrieveddescribes all the devices connected on the SAN, for the update of thedatabase of the Qlogic FC controller residing in the Qlogic chip 33 seenin FIG. 3. Thereby, the configuration table, including presence andpermissions, is kept updated.

[0085] Polling commands emitted every five to ten seconds to the SVM 3by the SVM Driver located in every specific host 1, are also processedby the Disk/HBA software module 48. Those are SCSI commands of the typeof Receive Diagnostics Results and Send Diagnostics, for the update ofthe translation table of each host 1. Once received by the Disk/HBAmodule 48, these commands are forwarded to the Setup module 49,containing the database of the configuration tables and of the statusparameters of the Virtual Volumes, from where the latest configurationpertaining to the specific host 1 is retrieved and returned to updatethe SVM 3

[0086] The Setup module 49 manages a database of the configurationtables (one table per Virtual Volume) located in the SDRAM DIMM memory35 of the FC-IB 11, shown in FIG. 3. Furthermore, the Setup Module 49controls the mapping of the permission and of the authorization levelsattributed to each one of the Virtual Volumes, of the hosts 1 and of thestorage devices 4. The authorizations to access Virtual Volumes aremanaged by the System Administrator who allocates the Virtual Volumesaccording to storage requests made by the users.

[0087] The Setup module 49 may also receive requests from the HTMLbuilder module 51 for the display of the latest system configuration.Such configuration requests emanate from the System Administrator, assystem management demands. In response to a request, the HTML buildermodule 51 retrieves the latest configuration table from the Setup module49, and generates HTML pages for dispatch to the web-server 43 of theWindows NT 41, for presentation to the System Manager.

[0088] Responding to solicitations for configuration modificationsreceived from the System Administrator, the Setup module 49 is able tocreate, change and delete Stripes Sets, Storage Pools and VirtualVolumes as defined and requested by the System Administrator.

[0089] For configuration identification purposes, the Setup module 49inserts a written signature at the end of the storage in each physicalstorage device 4 that is configured, either as part of a Stripe Set oras part of a Storage pool. When scanning for physical devices, duringdevice-polling activity, the SVM 3 reads the signature found at the endof the storage in each physical device 4, for purposes of identificationof each specific disk drive 4.

[0090] When a Stripe Set, Storage Pool or Virtual Volume is created,changed or deleted, the Setup module 49 creates an update of the newspecific internal computer program software structures and maps the newconfiguration to the configuration tables database residing in thestorage device 4. One configuration table is maintained for each VirtualVolume.

Host 1 Hardware

[0091] Each host 1 is connected to the Fabric storage network of links 5by way of at least one standard HBA and associated cabling (copper orfibre optics). Actually, the standard HBA driver is replaced by aVirtual Volume Driver but may still be referred to as an HBA driver.

Configuration Table

[0092] An example of a configuration table created and managed by theSVM 3 is now shown with reference to the FIGS. 5, 6 and 7. Both FIGS. 6and 7 are derived from FIG. 5 and present partial views of theconfiguration table.

[0093] The SVM 3 creates one configuration table for each Volume ofvirtual memory. All of the configuration tables are maintained in theSVM 3 but each SVM Drive, pertaining to a host 1, retrieves onehost-specific configuration table for each allowed Virtual Volume.Therefore, each single operational host 1 maintains at least oneconfiguration table from which translation from virtual address tophysical location is derived. An excerpt of such a configuration tableis shown in FIG. 5.

[0094] The configuration table is retrieved by the SVM Driver of aspecific host 1, provided that the at least one HBA connected to thatspecific host 1 has permission thereto. In FIG. 5 the example relates toa first Virtual Volume labeled as “1: VOLUME Vol#1”, as by the firstline of FIG. 5.

[0095] The first paragraph of FIG. 5 holds information about addressesand storage. In the present example, a series of four storage areas islisted, from pRaid[0] to pRaid[3], each storage area being accompaniedby the name of the physical device, such as for example, in the firstline of the first paragraph, the name is200000203710d55c0000000000000000 for pRaid[0].

[0096] The second line of the first paragraph, namelyqwRaidStartLba[0]=0, indicates the starting location of storage as beingsector 0, in the storage device pRaid[0], and the third line of the sameparagraph indicates that the end location is sector number 10240000, ordwNumLba[0]=10240000. Both the Virtual Volume #1 and the storage devicepRaid[0] thus use 10240000 sectors of memory in respectively, virtualmemory and physical storage.

[0097] Another view of FIG. 5 is illustrated in FIG. 6 where the fourstorage areas of the Volume Vol#1 appear as four consecutive lines. Thefour storage areas displayed in FIG. 6 are located in three differentphysical devices. In the second column designated as “Physical DeviceName”, line two and line four, both carry the same name200000203700a9e30000000000000000, and are therefore the same storagedevice.

[0098] The first column of FIG. 6 lists the virtual addresses of theVirtual Volume #1. These virtual addresses are derived from FIG. 5, asfollows. The first storage area pRaid[0] in the first line of the firstparagraph, starts at sector 0 and ends in sector 10240000. The secondstorage area pRaid[1] in the fourth line of the first paragraph, thusstarts at sector 10240000 and since pRaid[1] of FIG. 5 covers a rangefrom 0 to 20480000 sectors, the starting virtual address sector of thethird storage area is evidently the sum of both ranges, thus sector30720000 and so on. These Virtual Volume Addresses are listed in thefirst column of FIG. 6 against the names of the Physical Devices shownin the second column of the same FIG. 6. The Physical Device Address,listed in the successive lines of column three is copied from the lines,respectively, 2, 5, 8 and 11 of FIG. 5.

[0099] In other words, the Virtual Volume #1 has 51200000 sectors mappedto three different physical devices. The physical devices named200000203700a9e30000000000000000, has two different portions: the firstportion ranges from 0 to 20480000 and is mapped to the Virtual VolumeAddress 10240000, while the second portion ranges from 20480000 to30720000, and is mapped to the Virtual Volume Address 40,960,000.

[0100] The second paragraph of FIG. 5 provides information about thepermission level granted to the hosts. The first line and the third lineof paragraph two indicate the Node Number, and the second and the fourthline designate the permission level. These items are exposed in FIG. 7.The different permission levels are: 1 for Read Only, 3 for Read andWrite and 0 for Permission Denied. Therefore, access is permitted toonly two hosts identified by their WWN, as may be seen in FIG. 7.

[0101] A device status parameter, indicating either Absent, or Present,or Failed, is also part of the table of configuration, although notshown in FIG. 5.

Allocation of Virtual Volumes

[0102] The privilege of allocating and freeing storage area for mappingof the Virtual Volumes is reserved for the Storage Manager module 50 ofFIG. 4, which is in control of all the areas of storage still free. Thismodule 50 contains a list of the various Storage Pools available in thesystem. Every Storage Pool is a list of the physical devices 4, orStripe Sets, available in the system. When a Virtual Volume needs astorage allocation, for example the System Administrator selects thespecific Storage Pool, from his workstation, through the web-server 43and specifies the amount of storage requested. The Storage Managermodule 50 then inspects the lists of the available physical devices 4and of the Stripe Sets, to find one list containing the free spacerequested. If the space is found, then the user request for storage isgranted. Else, another storage area residing in one or more differentphysical devices is added to the Virtual Volume, provided physicalstorage space is available.

[0103]FIG. 8 shows the software modules present in an SVM driver 60,which is the translation computer program, and the interaction withsoftware residing in the host 1 in which the SVM driver is located. TheSVM driver 60 is seen to have a Volume driver 61 coupled to a DiskDriver 62 and a Configuration module 63. The Configuration module 63 islinked to a FC HBA driver 65.

[0104] Each specific SVM driver 60 communicates with the File Systemdriver 64 of the host 1 to which it is associated through the Volumedriver module 61. The Volume driver 61 presents Virtual Volumes to theoperating system of the associated host 1, as a virtualization of thedisks 4. Now, when the File System driver 64 issues an I/O request to aVirtual Volume, the Volume driver 61 translates the request into one ormore disk requests. In turn, the disk requests are sent to the FC HBAdriver, through the Disk driver 62, from where they are routed directlyto their physical addresses in the disk storage 4.

Management of Virtual Volumes

[0105] Centralized management of Virtual Volumes via the SVM 3 isdescribed to explain how Virtual Volumes are created, expanded, deletedand reassigned.

[0106] The SVM 3 supports three different management interfaces:

[0107] 1. A GUI (Graphic Utility Interface) allowing the SystemAdministrator to operate a remote Workstation coupled to the usersnetwork,

[0108] 2. A first Application Program Interface (API1) enabling a userapplication computer program to manage Virtual Volumes without “humanintervention”, and

[0109] 3. A second Application Program Interface (API2) permitting a“storage application” computer programs to manage Virtual Volumeswithout human intervention.

The GUI for the System Administrator

[0110] It was explained above that the SVM 3 has an internal Web-serverto operate a Pentium SBC with a small I2O based CGI script, to retrieveHTML pages from the HTLM builder software running in the i960 processor.Therefore, the System Administrator is able to operate from a remotesite, using the Internet and a standard web browser to access the SVM 3,by connecting the web browser to the IP address of the web serverinternal to the SVM 3. In operation, hosts 1 and storage devices 4 arediscovered automatically by the SVM 3 whiles Stripe Sets, Storage Pools,and Virtual Volumes need to be created by the System Administrator.

[0111] To create a Stripe set, the System Administrator is provided witha “Create Stripe Set” menu. It remains for him to enter a name for theStripe Set and next, to select the Stripe size and the participatingstorage devices. As a last step, the System Administrator confirms hischoice and the new Set is created. Once created, the Stripe Set may bedeleted by use of a “Delete Stripe Set” menu. Similarly, to define aStorage Pool, the System Administrator turns to the “Create StoragePool” menu, enters a name for the Storage Pool, chooses the devices orStripe Sets that will be part of the storage pool and confirms hisactions. Once confirmed, a new storage pool is produced and the SystemAdministrator may add more storage devices 4 to the newly created pool,either remove storage devices or entirely delete the whole Storage Poolsby taking advantage of various dedicated menus.

[0112] In the same manner as previously described, the SystemAdministrator operates a “Virtual Volumes menu” to create the VirtualVolumes, giving those Virtual Volumes a name, dedicating them to astorage pool, entering the storage capacity required for the VirtualVolumes, (in Megabytes) and assigning these Virtual Volumes to one ormore host(s) 1. Upon confirmation, the one or more Virtual Volumes arecreated and added to the configuration tables in the SVM 3. Now that aVirtual Volume exists, it may be expanded at any time simply by addingmore storage capacity thereto (either from the same Storage Pool or not)or may be reassigned to one or more different host(s) 1, or even deletedat any time.

The First Application Program Interface (API1) for User ApplicationPrograms

[0113] By another method of management, the SVM 3 operates an API1 topermit to any user application program, running in any one of the hosts1 to handle Virtual Volume management. The API1 consists of a set offunctions running in the NT of the SVM 3, and may be accessed by anyapplication program, via the user network 6.

[0114] For every management task available manually to the SystemManager via the GUI (Graphic Utility Interface), a parallel API1function may be called remotely. These parallel functions include, amongothers, commands such as “Create Virtual Volumes”, “Delete VirtualVolumes”, “List the number of Virtual Volumes”, and so on. Many types ofapplication programs may take advantage of the API1 facility, forexample, a backup application program may send a request to reassign thepermission attributed to the Virtual Volume(s) to a backup server andthen, commands operation of the program backup run.

[0115] The management of Virtual Volumes may thus be drivenautomatically by a first API 1 configured for use with user applicationprograms, if the necessary list of parameters is supplied by the user.

The Second Application Program Interface for Storage ApplicationPrograms (API2)

[0116] Storage Applications programs are applications recognized asbeing SAN-centric as opposed to host-centric operations. An API2 runsthe virtualization SVM Driver 60 and is an integral part of the SVM 3system. Similar to the user application programs, the storageapplication programs may also request Virtual Volume managementfunctions from the SVM 3. In this case, those requests flow through thestorage network (Fiber Channel or other) instead of via the usersnetwork. The reason is that the storage application programs are part ofthe SVM 3 and the internal protocol between the SVM 3 and the SVM Drivercontains the API2 requests.

[0117] The management of Virtual Volumes may thus be drivenautomatically by a second API 2 configured for use with storageapplication programs, if, as before, the list of necessary parameters issupplied by the user.

Software Flow

[0118] The flow chart of the SVM Driver 60 software for I/O operations,residing in each host 1 in the embodiment 100 of FIG. 1, is presented inFIG. 9. At the start, step A1 awaits a request for an I/O command. Whensuch a request is received, a check, in step A2, decides whether the I/Ocommand pertains to one or more Stripe Sets. For more than one StripeSet the flow proceeds to step A3 where the addresses for the Stripe Setand the remaining blocks is adjusted and the process proceeds to thestep A4. For one Stripe Set only, the flow passes from step A2 directlyto step A4 where calculation of the Stripe Set address(es) takes place.Continuing with the flow, at step A5, an I/O command is sent for everydisk 4 in a Stripe Set. Then, at step A6, for every disk 4 pertaining toa Stripe Set, acknowledgment is awaited for, in response of completionof the previous step. If there still are remaining blocks of data to behandled, then step A7 returns the flow to step A2 to finish the task byone or more round-again loops. Else, step A8 is reached where a responseis sent to the operating system of the host 1, which emitted the I/Orequest, as a notification that the command in question was successfullycompleted. Flow control now returns to step A1.

[0119] With reference to FIG. 10, the process of creation of a newVirtual Volume is explained regarding handling by the SystemAdministrator. To begin with, a request from a user for the creation ofa new Virtual Volume is awaited, in step B1. Once a request arrives froma host 1 to the SVM 3, either via the user network of links 5 or via thestorage network links 6, the System Administrator is presented with ascreen listing the free space still available in the Storage Pools, instep B2. Next, in step B3, the System Administrator is prompted for aVirtual Volume name and for the memory capacity requested, beforeproceeding to step B4 or else, the process returns to the previous step.At step B4, the System Administrator is presented with a screen listingthe levels of permission of the array of hosts 1. To continue to stepB6, the System Administrator must select levels of permission for thehosts 1, as requested in step B5, or else, the process returns to theprevious step. In step B6, the System Administrator is provided with aconfirmation screen, but step B7 checks whether confirmation is granted.Should confirmation be denied, then the flow reverts to step B2 foranother round, but if allowed, then in step B8, the new Virtual Volumeis added to the database of configuration tables storing the VirtualVolumes data and status parameters, including presence and permissionlevels, which are safeguarded in the setup module 49 of FIG. 4. Theprocess ends with step B9 that takes care to indicate the existence ofthe new Virtual Volume(s) to the specific hosts 1 and to return commandto the first step B1. When automatic control (without SystemAdministrator) is desired by an API 1 or an API 2, the user must specifyall the necessary parameters

[0120] A description of the process for the expansion of a volume isgiven in FIG. 11, where the first step C1 is the wait for a request froman application program to expand a volume. When such a request isreceived, either the System Administrator is shown, or the API1 ispresented, in step C2, with a full listing of all the free space stillavailable in the storage pools and there is prompting, in step C3, toenter the capacity required. A decision by the System Administrator or aresponse from the API 1 allows continuing the process in step C4 where aconfirmation screen appears for confirmation, or else, the processreturns to the previous step. Upon display of the confirmation screen,the System Administrator is prompted to confirm his decision in step C5,to reach the next stage, namely step C6. Not doing so returns him to thesecond step C2 to start all over again. At the next before last step C6,the database of configuration tables is updated with the new parametersregarding the expansion of the Virtual Volume, and saved in the setupmodule 49 of FIG. 4. Finally, at the end in step C7, the hosts 1 arenotified of the new Virtual Volume status parameters, and control of theprocess returns to the first step C1.

[0121] As a last example, a change of permission to a Virtual Volume isillustrated in FIG. 12. The same process, similar to those described inrelation with FIGS. 9, 10 and 11, occurs again, always first expecting arequest. In step D1 a request from an application program for the changeof the permissions granted to a Virtual Volume is expected. Oncereceived, the process moves on to step D2 to reveal to the SystemAdministrator or to the API1, a screen listing the permission to thehosts 1. The System Administrator is given a choice of permissions toselect from in step D3. If a choice is not entered, then the processretrogrades to the previous step. Else, step D4 is reached where theSystem Administrator is shown a confirmation screen. Next, in step D5,comes a decision for the System Administrator who is required to confirmthe change of permission(s) given to the Virtual Volume(s). By notconfirming, he returns to step D2, but else, the changes allowed areentered in the database of configuration tables with the Virtual Volumestatus parameters, as per step D6, and saved in the setup module 49 ofFIG. 4. At the end, in step D7, the update of the new Virtual Volumestatus parameters is indicated in the related hosts 1.

[0122] The SVM method described above allows the introduction of a newkind of applications at the host 1 level, with the capability to create,expand, and delete Virtual Volumes. Until now, the storage assigned to acomputer was fixed and assigned by a System Administrator. With the SVMsystem, an application program can request the creation of a new VirtualVolume, or virtual disk, for its own use. The application program mayalso request the expansion of an existing Virtual Volume when there isneed for more storage to save the data, and delete the Virtual Volumewhen the application finishes to run. These capabilities to create,expand and delete Virtual Volumes are inherent to the SVM due to thesoftware computer programs, behaving as an “intelligent device” toallocate and free storage space in the Storage Pools without any need ofhuman intervention. The SVM driver 60, which is embedded in every host1, provides a special function to this effect, to allow any applicationprogram to request the creation, expansion, or deletion of a VirtualVolume.

SAN Configuration Adaptation

[0123] The polling mechanism of the configuration computer softwareoperated by the SVM 3 continuously updates the translation tables as tothe latest configuration of the hosts 1 and of the storage devices 4coupled to the SAN. Referring to FIG. 13, the polling mechanism startsfrom the idle state in step E1 to search for any new device coupled tothe SAN, in step E2. In case there is no new device, the mechanismreturns to the idle state in step E1 and prepares for another searchloop. However, if a new device is discovered, the question, asked instep E3, is whether this new device is an HBA or a storage device 4.

[0124] For a storage device 4, step E4 checks and lists the WWN (WorldWide Name) and the LUN (Logic Unit Number) before changing theconfiguration of the SAN, in step E5, by adding the new storage device 4to the list of devices and by changing the status thereof as present.The polling mechanism now returns to the initial step E1 via step E9.

[0125] Should the device found by Step E3 be an HBA, then the HBA isadded to the list and the mechanism checks, in step E7, if the HEBAbelongs to an already listed host 1 or to a new host. For a previouslylisted host 1, the WWN of the new HBA is merely added in connection withthe proper host 1, as per step E8. However, should the new HBA belong toa new host 1, then the new host 1 is listed in the list of hosts 1, bystep E9, and the polling mechanism continues to step 10 to return to thestarting step E1.

[0126] In the same manner, the polling mechanism also deals with deviceremoval from the SAN, as illustrated in FIG. 14. As before, the polingmechanism starts from the idle state in step F1, and searches for anyremoved device, in step F2. If no device removal is detected, thepolling mechanism returns to the initial idle step F1 for a furthersearch loop.

[0127] If step F2 detects that a device was removed, then the searchproceeds to step F3 to uncover whether the removal consists of either anHBA or a storage device 4. For a storage device 4, the WWN and the LUNnumbers are read, in step F4, to determine, by a next step F5, whetherthe device is listed or not. A listed storage device 4 is simply markedas absent in step F6, and the mechanism passes to step F12 to return tothe beginning step F1. On the contrary, an unlisted device is justdeleted from the list, in step F7, before returning to the idle statestep, via F12 to F1.

[0128] Symmetrically, should step F3 find that the removed device is anHBA, then step F8 marks the HBA as absent and checks to which host 1 theHBA belongs. Should this be the only HBA for that host 1, then the hostis designated in step F10, as absent. Otherwise, step F11 labels thehost as degraded. Either absent or degraded, the polling mechanismreverts to the idle state in step F1 via step F12.

[0129] The SVM 3, operating the configuration computer program thuspermits addition and removal of devices from the SAN under constantautomatic configuration control in real time and in a flexible manner,without disrupting operations.

Additional Embodiments

[0130] Further embodiments of the SAN Virtualization, featuringdistributed architecture, will now be presented.

[0131] The users 7 and the System Administrator workstation 8 coupled tothe user network 6′ are deleted from the FIGS. 15 to 20 for the sake ofsimplicity. The configuration of the San remains substantially the sameand the same numerals are used to denote the same or similar elements inthe FIGS. 15 to 20. The term SVM 3 is used hereafter to denote thefunction thereof, either as hardware, or as software, or as acombination thereof

[0132]FIG. 15 shows an embodiment 200 similar to the embodiment 100,where instead of a separate SVM 3, that last SVM 3 is added into theNetwork Switch 2, thereby creating a new Network Switch 2′. A softwarecomputer program and/or hardware dedicated to perform the tasks of theSVM 3 are thus appended to the Network Switch 2 to implement the newNetwork Switch 2′. The hosts 1, or servers 1 retain the SVM Driver 60,which remains in charge of polling for table(s) updating via the storagenetwork links 5. The hardware and software functions of the SVM 3 maythus simply be either attached to the packaging of the Network Switch 2or integrated therewith, resulting in a new Network Switch 2′. Eitherway, the managing functions of the SVM are now performed as softwareprograms operating in the new Network Switch 2′. In the same way as forthe embodiment 100, the SVM 3 conducts device polling for the hosts 1and for the storage devices 4 via the storage network links 5′.

[0133] An additional embodiment 300 is illustrated in FIG. 16. Theconfiguration of the SAN is similar to the embodiment 200 of FIG. 15.The idea is to store in one chosen host 1′ of the array of hosts 1, adedicated software program designated as SVM 3/300 to execute thefunctions of the SVM 3. The SVM 3/300 accesses the hosts 1 and thestorage devices 4 through the at least one (FC) HBA (not shown in FIG.16) pertaining to the chosen host 1′. The tables updating is stillperformed by the SVM Drivers 60 residing in the hosts 1. This isachieved by modifying the SVM 3/300 to include a software computerprogram enabling the SVM 3/300 to accept the polling from the SVMDrivers 60. Each SVM Driver 60 residing in each one of the hosts 1, aswell as in the chosen host 1′, will thus extract the host-specificupdated table(s) from the SVM emulation in the chosen host 1′, via thestorage network links 5 of the storage network 5′. The device polling bythe SVM 3/300, for hosts 1 and for storage devices 4, also operated viathe storage network 5′

[0134] It is thus possible to imbed the SVM 3/300 inside a chosen host1′ of the hosts 1 pertaining to the SAN, to operate with the NetworkSwitch 2. The software computer program included in the SVM 3/300 issimple and any table updating procedures may be implemented. The NetworkSwitch 2 is the same as with the embodiment 100.

[0135] Still another embodiment 400 is depicted in FIG. 17, featuring aSAN having the SVM in a remote location and the SVM Drivers residing ineach one of the hosts 1. In this embodiment a dedicated softwarecomputer program, emulating the functions of the SVM 3 and designated asSVM 3/400, operates from a remote host 1R coupled by user network links6 to the user network 6′, via an Internet 80. In contrast with theprevious embodiment 300, the emulation function is now operates outsideof the SAN, instead of within a chosen host 1′ belonging to the SAN.

[0136] The SVM Drivers 60 located in each one of the hosts 1 aremodified to become the SVM Drivers 60/400, so as to accommodatecommunication via an Ethernet 6′, or by any other user network 6′, to agiven IP address, to the SVM 3/400, for retrieval of the host-specificupdated table(s). Table updating is thus achieved by implementing amodified SVM Driver 60/400 to poll the SVM3/400 by accessing the IPaddress via the user network 6′ and the Internet 80.

[0137] Because the SVM 3/400 emulator does not enjoy direct access tothe physical devices connected to the storage network 5′, i.e. to theHBAs of the hosts 1 and to the storage devices 4, further modificationsare imposed for device polling. For host polling, the SVM 3/400, isadequately configured to receive notification from the hosts 1 via theuser network 6′ and the Internet 80. In the case of storage devices, theSVM Driver 60/400 will poll those storage devices 4 to retrieve theinformation through the storage network 5′ and report of the status tothe SVM 3/400 via the user network 6′ and the Internet 80.

[0138] This embodiment 400 permits to emulate the SVM 3 in a remotelocation and to manage many SANs simultaneously. Evidently, the remoteSVM 3/400 may be connected to any user network 6′ such as an Ethernetnetwork, or an Internet 80, or to any other network.

[0139] A further preferred embodiment 500, denominated as an UpgradedNetwork Switch (UNS 2*), is achieved by taking advantage of theprocessing capabilities inherent to Enhanced Network Switches 2E, likethe Catalyst 5000/5500 Family Switches, made by CISCO and for whichdetails are provided at the Internet address httpfl:www.cisco.com. TheUNS 2*, is presented in FIGS. 18 and 19. The configuration of the SAN inthe embodiment 500 is similar of that of the embodiment 200 shown inFIG. 15. As before, the hosts 1 are linked by user network links 5 tothe storage devices 4 via the UNS 2*, which is also connected by a usernetwork link to the user network 6′.

[0140] The Upgraded Network Switch 2* (UNS 2*), seen in more detail inFIG. 19, incorporates a modified SVM 3, designated as the adjusted SVM3/500. The adjusted SVM 3/500 may take advantage of the existinghardware components of the UNS 2* and be implemented therein, perhapseven by a limited addition of hardware and the necessary software.

[0141] Reference is made to FIG. 19. An Enhanced Network Switch 2E, suchas the Catalyst 5000/5500, is shown to feature host-connection ports 1*and storage-device-connection ports 4* for coupling to, respectively,the hosts 1 and the storage devices 4. These connection ports 1* and 4*are coupled by storage network links 5 to the storage network 5′. TheCatalyst 5000/5500 is manufactured with a processor 66, that may bereplaced by a processing instance 66, coupled to each connection port,thus with one processing instance 66 for at least one host 1. Theprocessing instance 66 may thus be implemented either as a processorrunning a computer program, or as dedicated hardware, to operate the SVMDriver 60. In view of the fact that the SVM Driver 60 imposes but a verylight processing load, the operation of the SVM Driver 60 is easilyrelegated to the processing instance 66. The UNS 2* thus incorporatesthe SVM 3 Driver(s) 60 associated with the array of hosts 1. Inaddition, each processing instance 66 is coupled to the adjusted SVM3/500 by a link 14 and the adjusted SVM 3/500 is also connected by auser network link 6 to the user network 6′. Each single processinginstance 66 independently operates an SVM Driver 60, to route data froma host 1 to a storage device 4 via the UNS 2*. This process occurs inparallel and concurrently for a multiplicity of processors 66 of hosts 1and of storage devices 4.

[0142] Table updating is carried out by the SVM Driver 60 operating ineach processing instance 66, via the storage network 5′. The devicepolling is operated for the hosts 1 and for the storage devices 4 by theadjusted SVM 3/500, also via the storage network 5′.

[0143] The embodiment 500 shown in FIG. 18 fully integrates within theUNS 2*, in a compact configuration, both the capabilities of theadjusted SVM 3/500 and of the processing instances 66 operating the SVMDrivers 60. However, the I/O storage operations and the virtualizationand metadata handling tasks remain decoupled and separated, even thoughclosely packaged together.

[0144] Still one more preferred embodiment 600 is depicted in FIG. 20,resulting from the combination of the embodiments 400 and 500. Again,the SVM 3 functions are operated in, or emulated by, a remote host 1Rcoupled via an Internet 80 to the user network 6′.

[0145] An adapted SVM 3, labeled as SVM 3/600, similar to the SVM 3/400,runs in the remote host 1R, which is coupled by user network links 6 andvia an Internet 80, to the SAN, as shown in FIG. 20. The embodiment ofthe SAN is similar to the embodiment 400 shown in FIG. 14. In theembodiment 600, the hosts 1 are connected to the storage devices 4 viaan Enhanced Network Switch 2E by network links 5.

[0146] For table(s) update, the SVM Driver 60/600 is modified to permitaccess to IP addresses, to poll the adapted SVM 3/600, via the usernetwork 6, similar to the embodiment 400.

[0147] For device polling, the SVM Driver 60/600 poll the storagedevices 4 via the storage network links 5 and report the polling resultsto the adapted SVM 3/600 via the Enhanced Network Switch 2E, the usernetwork link 6 and the Internet 80. The adapted SVM 3/600 is configuredto receive report form the hosts 1, again, via the user network links 6′and the Internet 80.

[0148] The key principle of decoupling between the virtualization of thestorage capacity and the managing of the metadata and between therouting of storage I/O operations is thus implemented in the embodiment600.

[0149] There has thus been described a new method and a novel system forthe virtualization of a SAN and for a distributed architecturepermitting the decoupled processing of I/O data routing and ofvirtualization and metadata management.

[0150] It is to be understood that the above-mentioned embodiments aremerely illustrative of some of the many specific embodiments, whichrepresent applications of the principles of the present invention.Clearly, numerous and other arrangements can be readily devised by thoseskilled in the art without departing from the scope of the invention,such as for example, using a SAN with more than one SVM or UNS*, or bydistributing or embedding processors operating the translation computerprogram in various locations of the SAN, either on the storage networkor on the user network

1. A method for storage virtualization in a Storage Area Network (SAN)comprising an array of hosts (1) coupled to an array of storage devices(4) via a Network Switch (2) operative for routing storage I/Ooperations between the array of hosts and the array of storage devices,the storage devices having a storage capacity, and the array of hosts,the array of storage devices and the Network Switch being coupledtogether in a storage network (5′), and the array of hosts being coupledto a plurality of user workstations (7) on a user network (6′), themethod being characterized by comprising the steps of: coupling aStorage Virtualization Manager (SVM) (3) by a storage network link (5)to the Network Switch on the storage network, and coupling the SVM by auser network link (6) to the user network, the SVM being configured forvirtalization of the storage capacity and for managing metadia, andoperating the SVM for virtualization of the storage capacity and formanaging metadata, whereby virtualization of the storage capacity andmanaging metadata are decoupled from routing storage I/O operations. 2.The method according to claim 1, characterized by further comprising thestep of: operating a virtualization computer program comprising a firstconfiguration portion operating in the SVM (3) and a second translationportion (60) operating in association with at least one host of thearray of hosts.
 3. The method according to claim 2, characterized byfurther comprising the step of: operating the second translation portionof the virtualization computer program in each host of the array ofhosts.
 4. The method according to claim 2, characterized by furthercomprising the step of: operating the second translation portion of thevirtualization computer program on a processor associated with at leastone host of the array of hosts.
 5. The method according to claim 2,characterized by further comprising the step of: operating the firstconfiguration portion and the second translation portion of thevirtualization computer program in interactive operative association. 6.The method according to the claims 2 to 5, characterized by furthercomprising the step of: operating the virtualization computer programfor supporting real time configuration adaptation of the SAN in responseto a configuration change occurring in the array of hosts.
 7. The methodaccording to the claims 2 to 5, characterized by further comprising thestep of: operating the virtualization computer program for supportingreal time configuration adaptation of the SAN in response to aconfiguration change occurring in the array of storage devices.
 8. Themethod according to the claims 2 to 5, characterized by furthercomprising the step of: operating computer program control functionscomprised in the virtualization computer program for management ofstorage virtualization and for configuration management of both thearray of hosts and the array of storage devices.
 9. The method accordingto claim 8, characterized by further comprising the step of: enabling aSystem Administrator to manage the computer program control functions byoperating a workstation coupled to the user network.
 10. The methodaccording to claim 8, characterized by further comprising the step of:managing the computer program control functions in operative associationwith at least one user application computer program.
 11. The methodaccording to claim 8, characterized by further comprising the step of:managing the computer program control functions in association with atleast one storage application computer program.
 12. The method accordingto claim 1, characterized by further comprising the step of: configuringboth the Network Switch and the SVM for incorporation into a jointhousing.
 13. The method according to claim 1, characterized by furthercomprising the step of: accommodating one chosen host of the array ofhosts for incorporation therein of the SVM, the SVM being configured foroperative association with the array of hosts and for coupling theretovia the user network.
 14. The method according to the claims 2,characterized by further comprising the step of: configuring a hostcoupled to the user network to operate the configuration computerprogram in operative association with the Network Switch and with thetranslation portion of the virtualization computer program operating onat least one processor coupled to the storage network.
 15. A method forstorage virtualization in a Storage Area Network (SAN) comprising anarray of hosts (1) coupled to an array of storage devices (4) having astorage capacity, and an Enhanced Network Switch (2E) operative forrouting storage I/O operations between the array of hosts and the arrayof storage devices, and the array of hosts, the array of storage devicesand the Enhanced Network Switch being coupled together in a storagenetwork (5′), and the array of hosts being coupled to a plurality ofuser workstations (7) in a user network (6′), the method beingcharacterized by comprising the steps of: forming an Upgraded NetworkSwitch (UNS) (2*) to upgrade the Enhanced Network Switch (2E), the UNSintegrating an adjusted Storage Virtualization Manager (SVM) (3/500)configured for and operative for virtualization of the storage capacityand for managing metadata, the (UNS) comprising a first Enhanced NetworkSwitch portion and a second adjusted SVM portion, coupling the secondadjusted SVM portion by a storage network link (5) to the first EnhancedNetwork Switch portion and by a user network link (6) to the usernetwork, and operating the second adjusted SVM portion forvirtualization of the storage capacity and for managing metadata,whereby virtualization of the storage capacity and managing of metadataare decoupled from routing storage I/O operations.
 16. The methodaccording to claim 15, wherein the UNS (2*) is characterized by furthercomprising the steps of: coupling a plurality of ports of the EnhancedNetwork Switch comprising coupling a first portion of ports (1*) to thehosts (1) and a second portion of ports (4*) to the storage devices (4),and coupling by storage network link (5) to each port of the firstportion of ports and to each port of the second portion of ports,respectively, at least one host and at least one storage device, andcoupling a processing instance (66) to each port of at least the firstportion of ports, and to the second adjusted SVM portion.
 17. The methodaccording to claim 15, characterized by further comprising the steps of:operating a virtualization computer program comprising a firstconfiguration portion operative on the second adjusted SVM portion and asecond translation portion operative on the processing instance coupledto each port of the first portion of ports.
 18. The method according toclaim 17, characterized by further comprising the steps of: operatingindependently the second translation portion of the virtualizationcomputer program on the processing instance coupled to each port of thefirst portion of ports.
 19. The method according to claim 17characterized by further comprising the step of: running the firstconfiguration portion and the second translation portion of thevirtualization computer program in interactive operative association.20. The method according to the claims 17 to 19, characterized byfurther comprising the step of: operating the virtualization computerprogram to support real time configuration adaptation of the SAN inresponse to a configuration change occurring in the array of hosts. 21.The method according to the claims 17 to 19, characterized by furthercomprising the step of: operating the virtualization computer program tosupport real time configuration adaptation of the SAN in response to aconfiguration change occurring in the array of storage devices.
 22. Themethod according to the claims 17 to 19, characterized by furthercomprising the step of: operating computer program control functionscomprised in the virtualization computer program for management ofstorage virtualization and for configuration management of both thearray of hosts and the array of storage devices.
 23. The methodaccording to claim 22, characterized by further comprising the step of:enabling a System Administrator to manage the computer program controlfunctions by operating a workstation coupled to the user network. 24.The method according to claim 22, characterized by further comprisingthe step of: managing the computer program control functions inoperative association with at least one user application computerprogram.
 25. The method according to claim 22, characterized by furthercomprising the step of: managing the computer program control functionsin association with at least one storage application computer program.26. The method according to claim 15, characterized by furthercomprising the step of: configuring both the first Enhanced NetworkSwitch portion and the second adjusted SVM portion for incorporationinto a joint housing.
 27. A method for storage virtualization in atleast one Storage Area Network (SAN) comprising an array of hosts (1)coupled to an array of storage devices (4) having a storage capacity,and a Enhanced Network Switch (2E) operative for routing storage I/Ooperations between the array of hosts and the array of storage devices,the array of hosts, the array of storage devices and the EnhancedNetwork Switch being coupled together in a storage network (5′), and thearray of hosts being coupled to a plurality of user workstations (7)linked to a user network (6′) and further linked to a remote host (IR)via an Internet (80), the method being characterized by comprising thesteps of: coupling an adapted SVM (3/600) in operative association withthe remote host, the adapted SVM being configured for virtualization ofthe storage capacity and for managing metadata of the at least one SANvia the Internet and the user network, coupling the Enhanced NetworkSwitch to the user network, and operating the adapted SVM forvirtualization of the storage capacity and for managing metadata of theat least one SAN via the Internet and the user network, wherebyvirtualization of the storage capacity and managing of metadata aredecoupled from routing storage I/O operations.
 28. The method accordingto claim 27, wherein the Enhanced Network Switch (2E) comprises aplurality of ports comprising a first portion of ports (1*) for couplingto the hosts (1) and a second portion of ports (4*) for coupling to thestorage devices (4), and coupling by storage network link (5) to eachport of the first portion of ports and to each port of the secondportion of ports, respectively, at least one host and at least onestorage device, characterized by further comprising the steps of:coupling a processing instance (66) to each port of at least the firstportion of ports, and linking each processing instance to the adaptedSVM (3/600) via the user network 6′.
 29. The method according to claim27, characterized by further comprising the step of: operating avirtualization computer program comprising a first configuration portionoperated by the adapted SVM and a second translation portion operated bythe processing instance coupled to each port of the first portion ofports.
 30. The method according to claim 29, characterized by furthercomprising the steps of: operating independently the second translationportion of the virtualization computer program on the processinginstance coupled to each port of the first portion of ports.
 31. Themethod according to claim 29, characterized by further comprising thesteps of: operating the first configuration portion and the secondtranslation portion of the virtualization computer program ininteractive operative association.
 32. The method according to theclaims 29 to 31, characterized by further comprising the step of:operating the first portion of the virtualization computer program tosupport real time configuration adaptation of the at least one SAN, inresponse to a configuration change occurring in the array of hosts. 33.The method according to the claims 29 to 31, characterized by furthercomprising the step of: operating interactively the second portion withthe first portion of the virtualization computer program to support realtime configuration adaptation of the at least one SAN, in response to aconfiguration change occurring in the array of storage devices.
 34. Themethod according to the claims 29 to 31, characterized by furthercomprising the step of: operating computer program control functionscomprised in the virtualization computer program for management ofstorage virtualization and for configuration management of both thearray of hosts and the array of storage devices of the at least one SAN.35. The method according to claim 34, characterized by furthercomprising the step of: enabling a System Administrator to manage thecomputer program control functions by operating a workstation coupled tothe user network.
 36. The method according to claim 34, characterized byfurther comprising the step of: managing the computer program controlfunctions in operative association with at least one user applicationcomputer program operating on a host of the array of hosts of the atleast one SAN.
 37. The method according to claim 34, characterized byfurther comprising the step of: managing the computer program controlfunctions in association with at least one storage application computerprogram operating on a host of the array of hosts of the at least oneSAN.
 38. A system for storage virtualization in a Storage Area Network(SAN) comprising an array of hosts (1), an array of storage devices (4)with a storage capacity, and a Network Switch (2) operative for routingstorage I/O operations between the array of hosts and the array ofstorage devices, the array of hosts being coupled to the array ofstorage devices via the Network Switch in a storage network (5′), andthe array of hosts being coupled to a user network (6) comprising aplurality of user workstations (7), the system being characterized bycomprising: a Storage Virtualization Manager (SVM) (3) coupled by astorage network link (5) to the Network Switch on the storage network,and the SVM being coupled by a user network link (6) to the usernetwork, the SVM being configured for and operating for virtualizationof the storage capacity and for managing metadata, wherebyvirtualization of the storage capacity and managing metadata aredecoupled from routing storage I/O operations.
 39. The system accordingto claim 38, characterized by further comprising: a virtualizationcomputer program comprising a first configuration portion running on theSVM and a second translation portion operating in association with atleast one host of the array of hosts.
 40. The system according to claim39, characterized by further comprising: each host of the array of hostsoperating the second translation portion of the virtualization softwarecomputer program.
 41. The system according to claim 39, characterized byfurther comprising: a processor associated with at least one host of thearray of hosts for operating the second translation portion of thevirtualization computer program.
 42. The system according to claim 39,characterized by further comprising: the first configuration portion andthe second translation portion of the virtualization computer programbeing coupled in interactive operative association.
 43. The systemaccording to the claims 39 to 42, characterized by further comprising: areal time configuration adaptation of the SAN in response to aconfiguration change occurring in the array of hosts, the real timeconfiguration adaptation being supported by operation of thevirtualization computer program.
 44. The system according to the claims39 to 42, characterized by further comprising: a real time configurationadaptation of the SAN in response to a configuration change occurring inthe array of storage devices, the real time configuration adaptationbeing supported by operation of the virtualization computer program. 45.The system according to the claims 39 to 42, characterized by furthercomprising: computer program control functions comprised in thevirtualization computer program being operated for management of storagevirtualization and for configuration management of both the array ofhosts and the array of storage devices.
 46. The system according toclaim 45, characterized by further comprising: a System Administratorfor managing the computer program control functions by operating aworkstation coupled to the user network.
 47. The system according toclaim 45, characterized by further comprising: at least one userapplication computer program for managing the computer program controlfunctions.
 48. The system according to claim 45, characterized byfurther comprising: at least one storage application computer programfor managing the computer program control functions.
 49. The systemaccording to claim 38, characterized by further comprising: a jointhousing configured for incorporation therein of both the Network Switchand the SVM.
 50. The system according to claim 38, characterized byfurther comprising: one chosen host of the array of hosts beingconfigured for incorporation therein of the SVM and the SVM beingcoupled in operative association to the Network Switch via the storagenetwork.
 51. The system according to claim 39, characterized by furthercomprising: a host coupled to the user network and being configured tooperate the configuration computer program in operative association withthe Network Switch and with the translation portion of thevirtualization computer program operating on at least one processorcoupled to the storage network.
 52. A system for a Storage Area Network(SAN) comprising an array of hosts (1), an array of storage devices (4)having a storage capacity, and an Enhanced Network Switch (2E) operativefor routing I/O operations between the array of hosts and the array ofstorage devices, the array of hosts being coupled to the array ofstorage devices via the Enhanced Network Switch, the array of storagedevices and the Enhanced Network Switch being coupled together in astorage network (5′), and the array of hosts being coupled to a usernetwork (6′) comprising a plurality of user workstations (7), the systembeing characterized by comprising: an Upgraded Network Switch (UNS) 2*created to upgrade the Enhanced Network Switch, the UNS integrating anadjusted Storage Virtualization Manager (SVM) (3/500) configured for andoperative for virtualization of the storage capacity and for managingmetadata, the UNS comprising a first Upgraded Network Switch portion anda second adjusted SVM portion, and a storage network link (5) couplingthe first Enhanced Network Switch portion to the second adjusted SVMportion and a user network link (6) coupling the second adjusted SVMportion to the user network, whereby virtualization of the storagecapacity and managing metadata are decoupled from routing storage I/Ooperations.
 53. The system according to claim 52 wherein the UNS (2*) ischaracterized by further comprising: a plurality of ports comprising afirst portion of ports (1*) for coupling to the hosts (1) and a secondportion of ports (4*) for coupling to the storage devices (4), andcoupling by storage link (5) to each port of the first portion of portsand to each port of the second portion of ports, respectively, at leastone host and at least one storage device, and at least one processinginstance (66) being coupled to each port of at least the first portionof ports, and to the second adjusted SVM portion.
 54. The systemaccording to claim 52, characterized by further comprising: avirtualization computer program comprising a first configuration portionoperative on the second adjusted SVM portion and a second translationportion operative on the at least one processor coupled to each port ofthe first portion of ports.
 55. The system according to claim 43,characterized by further comprising: each at least one processor coupledto each port of the first portion of ports independently operating thesecond translation portion of the virtualization computer program. 56.The system according to claim 44, characterized by further comprising:an interactive operative association coupling the first configurationportion and the second translation portion of the virtualizationcomputer program.
 57. The system according to the claims 54 to 56,characterized by further comprising: a real time configurationadaptation of the SAN in response to a configuration change occurring inthe array of hosts, the real time configuration adaptation beingsupported by operation of the virtualization computer program.
 58. Thesystem according to the claims 54 to 56, characterized by furthercomprising: a real time configuration adaptation of the SAN in responseto a configuration change occurring in the array of storage devices, thereal time configuration adaptation being supported by operation of thevirtualization computer program.
 59. The system according to the claims54 to 56, characterized by further comprising: computer program controlfunctions comprised in the virtualization computer program formanagement of storage virtalization and for configuration management ofboth the array of hosts and the array of storage devices.
 60. The systemaccording to claim 48, characterized by further comprising a SystemAdministrator for managing the computer program control functions byoperating a workstation coupled to the user network.
 61. The systemaccording to claim 48, characterized by further comprising: at least oneuser application computer program for managing the computer programcontrol functions.
 62. The system according to claim 48, characterizedby further comprising: at least one storage application computerprograms operating the management of the computer program controlfunctions.
 63. The system according to claim 41, characterized byfurther comprising: a joint housing configured for incorporation thereinof the first Enhanced Network Switch portion and the second adjusted SVMportion.
 64. A system for storage virtualization of at least one StorageArea Network (SAN) comprising an array of hosts (1), an array of storagedevices (4) having a storage capacity, and a Enhanced Network Switch(2E) operative for routing storage I/O operations between the array ofhosts and the array of storage devices, the array of hosts being coupledto the array of storage devices via the Enhanced Network Switch, withthe array of hosts and the array of storage devices and the EnhancedNetwork Switch being coupled together in a storage network (5′), and thearray of hosts being coupled to a user network (6′) comprising aplurality of user workstations (7) and further linked to a remote host(1R) via an Internet (80), the system being characterized by comprising:an adapted SVM (3/600) coupled in operative association with the remotehost, the adapted SVM being configured for virtualization of the storagecapacity and for managing metadata of the at least one SAN via theInternet and the user network, with the adapted SVM being operated forvirtualization of the storage capacity and for managing metadata of theat least one SAN via the Internet and the user network, and a couplingfor linking the Enhanced Network Switch to the user network, wherebyvirtualization of the storage capacity and managing of metadata aredecoupled from routing storage I/O operations.
 65. The system accordingto claim 64 wherein the Enhanced Network Switch (2M) comprises aplurality of ports having a first portion of ports (1*) for coupling tothe hosts (1) and a second portion of ports (4*) for coupling to thestorage devices (4), and coupling by storage network links (5) to eachport of the first portion of ports and to each port of the secondportion of ports, respectively, at least one host of the array of hostsand at least one storage device of the array of storage devices, thesystem being characterized by further comprising: a processing instance(66) coupled to each port of at least the first portion of ports, andeach processing instance being linked to each port out of the firstportion of ports via the user network to the adapted SVM (3/600). 66.The system according to claim 64, characterized by further comprising: avirtualization computer program comprising a first configuration portionoperative on the adapted SVM and a second translation portion operativeon the processing instance coupled to each port of the first portion ofports.
 67. The system according to claim 66, characterized by furthercomprising: the processing instance coupled to each port of the firstportion of ports independently operating the second translation portionof the virtualization computer program.
 68. The system according toclaim 66, characterized by further comprising: an interactive operativeassociation between the first configuration portion and the secondtranslation portion of the virtualization computer program.
 69. Thesystem according to the claims 66 to 68, characterized by furthercomprising: a real time adaptation of the at least one SAN in responseto a configuration change occurring in the array of hosts, the real timeconfiguration adaptation being supported by operation of thevirtualization computer program.
 70. The system according to the claims66 to 68, characterized by further comprising: a real time configurationadaptation of the at least one SAN in response to a configuration changeoccurring in the array of storage devices, the real time configurationadaptation being supported by operation of the virtualization computerprogram.
 71. The system according to the claims 66 to 68, characterizedby further comprising: computer program control functions comprised inthe virtualization computer program, for management of storagevirtualization, and for management of both the array of hosts and thearray of storage devices of the at least one SAN.
 72. The systemaccording to claim 71, characterized by further comprising: a SystemAdministrator for managing the computer program control functions via aworkstation (8) coupled to the user network.
 73. The system according toclaim 71, characterized by further comprising: the computer programcontrol functions being managed by at least one user applicationcomputer program operating on a host of the at least one SAN.
 74. Thesystem according to claim 71, characterized by further comprising: thecomputer program control functions being managed by at least one storageapplication computer program operating on a host of the at least oneSAN.
 75. A storage virtualizer for a Storage Area Network (SAN)comprising an array of hosts (1), an array of storage devices (4) with astorage capacity, and a Network Switch (2) operative for routing storageI/O operations between the array of hosts and the array of storagedevices, the array of hosts being coupled to the array of storagedevices via the Network Switch in a storage network (5′), and the arrayof hosts being coupled to a user network (6′) comprising a plurality ofuser workstations (7), the storage virtualizer being characterized bycomprising: a Storage Virtualization Manager (SVM) (3) coupled by astorage network link (5) to the Network Switch on the storage network,and the SVM being coupled by a user network link (6) to the usernetwork, the SVM being configured for and operating for virtualizationof the storage capacity and for managing metadata, wherebyvirtualization of storage capacity and managing of metadata aredecoupled from routing storage I/O operations.
 76. The storagevirtualizer according to claim 75, characterized by further comprising:a virtualization computer program comprising a first configurationportion running on the SVM and a second translation portion operating inassociation with at least one host of the array of hosts.
 77. Thestorage virtualizer according to claim 76, characterized by furthercomprising: each host of the array of hosts operating the secondtranslation portion of the virtualization computer program.
 78. Thestorage virtualizer according to claim 76, characterized by furthercomprising: a processor associated with at least one host of the arrayof hosts for operating the second translation portion of thevirtualization computer program.
 79. The storage virtualizer accordingto claim 76, characterized by further comprising: the firstconfiguration portion and the second translation portion of thevirtualization computer program being coupled in interactive operativeassociation.
 80. The storage virtualizer according to the claims 76 to79, characterized by further comprising: a real time configurationadaptation of the SAN in response to a configuration change occurring inthe array of hosts, the real time configuration adaptation beingsupported by operation of the virtualization computer program.
 81. Thestorage virtualizer according to the claims 76 to 79, characterized byfurther comprising: a real time configuration adaptation of the SAN inresponse to a configuration change occurring in the array of storagedevices, the real time configuration adaptation being supported byoperation of the virtualization computer program.
 82. The storagevirtualizer according to the claims 76 to 79, characterized by furthercomprising: computer program control functions comprised in thevirtualization computer program being operated for management of storagevirtualization and for configuration management of both the array ofhosts and the array of storage devices.
 83. The storage virtualizeraccording to claim 82, characterized by further comprising: a SystemAdministrator for managing the computer program control functions byoperating a workstation coupled to the user network.
 84. The storagevirtualizer according to claim 82, characterized by further comprising:at least one user application computer program for managing the computerprogram control functions.
 85. The storage virtualizer according toclaim 75, characterized by further comprising: at least one storageapplication computer programs for managing the computer program controlfunctions.
 86. The storage virtualizer according to claim 75,characterized by further comprising: an integrated storage virtualizerhousing configured for incorporation therein of the Network Switch andof the SVM.
 87. The storage virtualizer according to claim 75,characterized by further comprising: one chosen host of the array ofhosts being configured for incorporation therein of the SVM, and the SVMbeing coupled in operative association to the Network Switch via thestorage network.
 88. The storage virtualizer according to claim 76,characterized by further comprising: a host coupled to the user networkand being configured to operate the configuration computer program inoperative association with the Network Switch and with the translationportion of the virtualization computer program operating on at least oneprocessor coupled to the storage network.
 89. A storage virtualizer fora Storage Area Network (SAN) comprising an array of hosts (1), an arrayof storage devices (4) having a storage capacity, and an EnhancedNetwork Switch (2E) operative for routing I/O operations between thearray of hosts and the array of storage devices, the array of hostsbeing coupled to the array of storage devices via the Enhanced NetworkSwitch, the array of storage devices and the Enhanced Network Switchbeing coupled together in a storage network (5′), and the array of hostsbeing coupled to a user network (6′) comprising a plurality of userworkstations (7), the system being characterized by comprising: anUpgraded Network Switch (UNS) 2* created to upgrade the Enhanced NetworkSwitch, the UNS integrating a Storage Virtualization Manager (SVM)(3/500) configured for and operative for virtualization of the storagecapacity and for managing metadata, the UNS comprising a first UpgradedNetwork Switch portion and a second SVM portion, and a storage networklink (5) coupling the first Enhanced Network Switch portion to thesecond SVM portion and a user network link (6) coupling the second SVMportion to the user network, whereby virtualization of the storagecapacity and managing metadata are decoupled from routing storage I/Ooperations.
 90. The storage virtualizer according to claim 89, whereinthe UNS is characterized by further comprising: a plurality of portscomprising a first portion of ports (1*) for coupling to the hosts (1)and a second portion of ports (4*) for coupling to the storage devices(4), and coupling by storage link (5) to each port of the first portionof ports and to each port of the second portion of ports, respectively,at least one host and at least one storage device, and at least oneprocessing instance (66) being coupled to each port of at least thefirst portion of ports, and to the second SVM portion.
 91. The storagevirtualizer according to claim 89, characterized by further comprising:a virtualization computer program comprising a first configurationportion operative on the second SVM portion and a second translationportion operative on the at least one processor coupled to each port ofthe first portion of ports.
 92. The storage virtualizer according toclaim 89, characterized by further comprising: each at least oneprocessor coupled to each port of the first portion of portsindependently operating the second translation portion of thevirtualization computer program.
 93. The system according to claim 89,characterized by further comprising: an interactive operativeassociation coupling the first configuration portion and the secondtranslation portion of the virtualization computer program.
 94. Thesystem according to the claims 91 to 93, characterized by furthercomprising: a real time configuration adaptation of the SAN in responseto a configuration change occurring in the array of hosts, the real timeconfiguration adaptation being supported by operation of thevirtualization computer program.
 95. The system according to the claims91 to 93, characterized by further comprising: a real time configurationadaptation of the SAN in response to a configuration change occurring inthe array of storage devices, the real time configuration adaptationbeing supported by operation of the virtualization computer program. 96.The system according to the claims 91 to 93, characterized by furthercomprising: computer program control functions comprised in thevirtualization computer program for management of storage virtualizationand for configuration management of both the array of hosts and thearray of storage devices.
 97. The system according to claim 98,characterized by further comprising: a System Administrator for managingthe computer program control functions by operating a workstationcoupled to the user network.
 98. The system according to claim 98,characterized by further comprising: at least one user applicationcomputer program for managing the computer program control functions.99. The system according to claim 98, characterized by furthercomprising: at least one storage application computer programs operatingthe management of the computer program control functions.
 100. Thesystem according to claim 98, characterized by further comprising: ajoint housing configured for incorporation therein of the first EnhancedNetwork Switch portion and the second SVM portion.
 101. A storagevirtualizer for storage virtualization of at least one Storage AreaNetwork (SAN) comprising an array of hosts (1), an array of storagedevices (4) having a storage capacity, and a Enhanced Network Switch(2E) operative for routing storage I/O operations between the array ofhosts and the array of storage devices, the array of hosts being coupledto the array of storage devices via the Enhanced Network Switch, withthe array of hosts and the array of storage devices and the EnhancedNetwork Switch being coupled together in a storage network (5′), and thearray of hosts being coupled to a user network (6′) comprising aplurality of user workstations (7) and further linked to a remote host(1R) via an Internet (80), the storage virtualizer being characterizedby comprising: an adapted SVM (3/600) coupled in operative associationwith the remote host, the adapted SVM being configured forvirtualization of the storage capacity and for managing metadata of theat least one SAN via the Internet and the user network, with the adaptedSVM being operated for virtualization of the storage capacity and formanaging metadata of the at least one SAN via the Internet and the usernetwork, and a coupling for linking the Enhanced Network Switch to theuser network, whereby virtualization of the storage capacity andmanaging of metadata are decoupled from routing storage I/O operations.102. The storage virtualizer according to claim 64 wherein the EnhancedNetwork Switch (2M) comprises a plurality of ports having a firstportion of ports (1*) for coupling to the hosts (1) and a second portionof ports (4*) for coupling to the storage devices (4), and coupling bystorage network links (5) to each port of the first portion of ports andto each port of the second portion of ports, respectively, at least onehost of the array of hosts and at least one storage device of the arrayof storage devices, the storage virtualizer being characterized byfurther comprising: a processing instance (66) coupled to each port ofat least the first portion of ports, and each processing instance beinglinked to each port out of the first portion of ports via the usernetwork to the adapted SVM (3/600).
 103. The storage virtualizeraccording to claim 64, characterized by further comprising: avirtualization computer program comprising a first configuration portionoperative on the adapted SVM and a second translation portion operativeon the processing instance coupled to each port of the first portion ofports.
 104. The system according to claim 66, characterized by furthercomprising: the processing instance coupled to each port of the firstportion of ports independently operating the second translation portionof the virtualization computer program.
 105. The storage virtualizeraccording to claim 66, characterized by further comprising: aninteractive operative association between the first configurationportion and the second translation portion of the virtualizationcomputer program.
 106. The storage virtualizer according to the claims103 to 105, characterized by further comprising: a real time adaptationof the at least one SAN in response to a configuration change occurringin the array of hosts, the real time configuration adaptation beingsupported by operation of the vitalization computer program.
 107. Thestorage virtualizer according to the claims 103 to 105, characterized byfurther comprising: a real time configuration adaptation of the at leastone SAN in response to a configuration change occurring in the array ofstorage devices, the real time configuration adaptation being supportedby operation of the virtualization computer program.
 108. The storagevirtualizer according to the claims 103 to 105, characterized by furthercomprising: computer program control functions comprised in thevirtualization computer program, for management of storagevirtualization, and for management of both the array of hosts and thearray of storage devices of the at least one SAN.
 109. The storagevirtualizer according to claim 71, characterized by further comprising:a System Administrator for managing the computer program controlfunctions via a workstation (8) coupled to the user network.
 110. Thestorage virtualizer according to claim 71, characterized by furthercomprising: the computer program control functions being managed by atleast one user application computer program operating on a host of theat least one SAN.
 111. The storage virtualizer according to claim 71,characterized by further comprising: the computer program controlfunctions being managed by at least one storage application computerprogram operating on a host of the at least one SAN.